home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / bin / nessus-build < prev    next >
Text File  |  2006-06-13  |  3KB  |  151 lines

  1. #!/bin/sh
  2. #
  3. # nessus-build
  4. # $Id: nessus-build.in,v 1.6 1999/11/27 09:59:27 renaud Exp $
  5. # Author : Renaud Deraison <deraison@cvs.nessus.org>
  6. #
  7. # This script builds a .nes Nessus plugin
  8. # from a .c source file.
  9. #
  10.  
  11. prefix=/usr
  12. exec_prefix=${prefix}
  13. libdir=${exec_prefix}/lib
  14. CP=/bin/cp
  15. MV=/bin/mv
  16. RM=/bin/rm
  17. ECHO=/bin/echo
  18. MAKE=/usr/bin/gmake
  19. TEST=/usr/bin/test
  20. MKDIR=/bin/mkdir
  21. CAT=/bin/cat
  22.  
  23. NESSUS_BUILD="nessus-build.$RANDOM"
  24.  
  25. $TEST "$1" || {
  26.     $ECHO "Usage : $0 input.c output.nes"
  27.     exit 1
  28.     }
  29. $TEST "$2" || {
  30.     $ECHO "Usage : $0 input.c output.nes"
  31.     exit 1
  32.     }
  33. $TEST "$TMP" || {
  34.     $ECHO "The TMP variable has not been set."
  35.     $ECHO "Set it, and try again (avoid to use /tmp)"
  36.     $ECHO "ie:"
  37.     $ECHO "export TMP=~/.tmp"
  38.     exit 1
  39.     }
  40.  
  41. # Sanity checks
  42.     
  43. $TEST -d "$TMP" || {
  44.  $ECHO "$TMP is not a directory or does not exist !"
  45.  exit 1
  46. }
  47.  
  48. # Make sure we can read $1
  49. $TEST -r "$1" || { 
  50.  $ECHO "$1 does not exist or can not be read"
  51.  exit 1
  52. }
  53.  
  54. # Make sure we will not overwrite $2
  55. $TEST -f "$2" && {
  56.  $ECHO "$2 already exists. Delete it first"
  57.  exit 1
  58. }
  59.     
  60. # save the current working directory
  61. old=`pwd`
  62.  
  63. # Check that no-one else is building a nessus plugin
  64. # and that we won't overwrite any file
  65. $TEST -d "$TMP/$NESSUS_BUILD" && {
  66.  $ECHO "$TMP/$NESSUS_BUILD exists. Delete it."
  67.  exit 1
  68. }
  69.  
  70. #
  71. # Create a space where we are going to put our junk
  72. #
  73. $MKDIR "$TMP/$NESSUS_BUILD" || {
  74.     $ECHO "Could not create $TMP/$NESSUS_BUILD. Check the permissions"
  75.     exit 1
  76.     }
  77.  
  78. # Copy our files to this space
  79.  
  80. $TEST -d ${libdir}/nessus/plugins_factory/ ||
  81. {
  82.  $ECHO "${libdir}/nessus/plugins_factory/ does not exist"
  83.  $ECHO "Did you install nessus-plugins properly ?"
  84.  exit 1
  85. }
  86.  
  87.  
  88. for i in ${libdir}/nessus/plugins_factory/*;
  89. do
  90. $TEST -f $TMP/$NESSUS_BUILD/$i && {
  91.     $ECHO "$i already exist in $TMP/$NESSUS_BUILD/"
  92.     $ECHO "Delete $TMP/$NESSUS_BUILD/"
  93.     exit 1
  94.     }
  95. if [ -r $i ];
  96. then
  97.  $CP $i "$TMP/$NESSUS_BUILD/"
  98. else
  99.  $ECHO "Could not read $i"
  100.  exit 1
  101. fi
  102.  
  103. done
  104.  
  105. # Copy the plugin source code to this space too
  106. $CP $1 $TMP/$NESSUS_BUILD/plugin.c || {
  107.     $ECHO "Could not copy $1 to $TMP/$NESSUS_BUILD/plugin.c"
  108.     exit 1
  109.     }
  110.     
  111.     
  112. # cd to this space
  113. cd "$TMP/$NESSUS_BUILD"
  114.  
  115. # build the plugin quietly, but store the error in a file -- in case of
  116. $MAKE 2>&1 > "$TMP/$NESSUS_BUILD/make_error"
  117. if [ $? -ne 0 ];
  118. then
  119.  $CAT "$TMP/$NESSUS_BUILD/make_error"
  120.  $ECHO "An error occured"
  121.  exit 1
  122. fi
  123.  
  124. #
  125. # rename the output to plugin.nes
  126. #
  127. # depending if it's a shared a.out or ELF
  128. # library, it has not the same name
  129. #
  130. if [ -f .libs/libplugin.so.0 ];then
  131.     $CP .libs/libplugin.so.0 plugin.nes
  132. else
  133.     $CP .libs/libplugin.so.0.0 plugin.nes
  134. fi
  135.  
  136.  
  137. # return to the place we were called from
  138. cd $old
  139.  
  140. # copy the plugin where we were asked to
  141. NAME="$2"
  142.  
  143. $MV -i "$TMP/$NESSUS_BUILD/plugin.nes" "$NAME" || {
  144.     $ECHO "Could not do $MV $TMP/$NESSUS_BUILD/plugin.nes $NAME";
  145.     exit 1
  146.     }
  147.  
  148. # delete our temporary directory
  149. $RM -rf "$TMP/$NESSUS_BUILD"
  150.